package str_match

import "fmt"

// Boyer-Moore
// 移动字符数是通过两条规则决定的：坏字符规则和好后缀规则。
// 实际移动为通过这两条规则计算出的最大移动个数
func BM(text, pattern string) []int {

	return nil
}

// 坏字符
func BadChar(pattern string) []int {
	bc := make([]int, 26)
	for i := range bc {
		bc[i] = -1
	}
	for i := 0; i < len(pattern); i++ {
		bc[pattern[i] - 'A'] = i
	}

	for i, c := range bc {
		if c != -1 {
			fmt.Println(i, bc[i])
		}
	}
	return bc
}

// 好后缀
func GoodSuffix(pattern string) {

}
